home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 July: Mac OS SDK / Dev.CD Jul 00 SDK2.toast / Development Kits / Cross Platform / QuickTime 4.1.2 Windows SDK / CIncludes / QTML.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-04-12  |  5.4 KB  |  251 lines  |  [TEXT/R*ch]

  1. /*
  2.      File:        QTML.h
  3.  
  4.      Contains:    QuickTime Cross-platform specific interfaces
  5.  
  6.      Version:    Technology:    QuickTime 4.1
  7.                  Release:    QuickTime 4.1
  8.  
  9.      Copyright:    (c) 1997-1999 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __QTML__
  18. #define __QTML__
  19.  
  20. #ifndef __MACTYPES__
  21.     #include <MacTypes.h>
  22. #endif
  23.  
  24. #ifndef __MACMEMORY__
  25.     #include <MacMemory.h>
  26. #endif
  27.  
  28. #ifndef __MACWINDOWS__
  29.     #include <MacWindows.h>
  30. #endif
  31.  
  32. #ifndef __OSUTILS__
  33.     #include <OSUtils.h>
  34. #endif
  35.  
  36. #ifndef __FILES__
  37.     #include <Files.h>
  38. #endif
  39.  
  40.  
  41.  
  42.  
  43. #if PRAGMA_ONCE
  44. #pragma once
  45. #endif
  46.  
  47. #ifdef __cplusplus
  48. extern "C" {
  49. #endif
  50.  
  51. #if PRAGMA_IMPORT
  52. #pragma import on
  53. #endif
  54.  
  55. #if PRAGMA_STRUCT_ALIGN
  56.     #pragma options align=mac68k
  57. #elif PRAGMA_STRUCT_PACKPUSH
  58.     #pragma pack(push, 2)
  59. #elif PRAGMA_STRUCT_PACK
  60.     #pragma pack(2)
  61. #endif
  62.  
  63. EXTERN_API( void )
  64. QTMLYieldCPU                    (void);
  65.  
  66. EXTERN_API( void )
  67. QTMLYieldCPUTime                (long                     milliSeconds,
  68.                                  unsigned long             flags);
  69.  
  70. #if !(TARGET_OS_MAC && TARGET_API_MAC_OS8)
  71. typedef long                             QTMLMutex;
  72. typedef struct OpaqueQTMLSyncVar*         QTMLSyncVar;
  73. typedef QTMLSyncVar *                    QTMLSyncVarPtr;
  74. enum {
  75.     kInitializeQTMLNoSoundFlag    = (1L << 0),                    /* flag for requesting no sound when calling InitializeQTML*/
  76.     kInitializeQTMLUseGDIFlag    = (1L << 1),                    /* flag for requesting GDI when calling InitializeQTML*/
  77.     kInitializeQTMLDisableDirectSound = (1L << 2),                /* disables QTML's use of DirectSound*/
  78.     kInitializeQTMLUseExclusiveFullScreenModeFlag = (1L << 3)    /* later than QTML 3.0: qtml starts up in exclusive full screen mode*/
  79. };
  80.  
  81. enum {
  82.     kQTMLHandlePortEvents        = (1L << 0),                    /* flag for requesting requesting QTML to handle events*/
  83.     kQTMLNoIdleEvents            = (1L << 1)                        /* flag for requesting requesting QTML not to send Idle Events*/
  84. };
  85.  
  86. EXTERN_API( OSErr )
  87. InitializeQTML                    (long                     flag);
  88.  
  89. EXTERN_API( void )
  90. TerminateQTML                    (void);
  91.  
  92. EXTERN_API( GrafPtr )
  93. CreatePortAssociation            (void *                    theWnd,
  94.                                  Ptr                     storage,
  95.                                  long                     flags);
  96.  
  97. EXTERN_API( void )
  98. DestroyPortAssociation            (CGrafPtr                 cgp);
  99.  
  100. EXTERN_API( void )
  101. QTMLGrabMutex                    (QTMLMutex                 mu);
  102.  
  103. EXTERN_API( Boolean )
  104. QTMLTryGrabMutex                (QTMLMutex                 mu);
  105.  
  106. EXTERN_API( void )
  107. QTMLReturnMutex                    (QTMLMutex                 mu);
  108.  
  109. EXTERN_API( QTMLMutex )
  110. QTMLCreateMutex                    (void);
  111.  
  112. EXTERN_API( void )
  113. QTMLDestroyMutex                (QTMLMutex                 mu);
  114.  
  115. EXTERN_API( QTMLSyncVarPtr )
  116. QTMLCreateSyncVar                (void);
  117.  
  118. EXTERN_API( void )
  119. QTMLDestroySyncVar                (QTMLSyncVarPtr         p);
  120.  
  121. EXTERN_API( long )
  122. QTMLTestAndSetSyncVar            (QTMLSyncVarPtr         sync);
  123.  
  124. EXTERN_API( void )
  125. QTMLWaitAndSetSyncVar            (QTMLSyncVarPtr         sync);
  126.  
  127. EXTERN_API( void )
  128. QTMLResetSyncVar                (QTMLSyncVarPtr         sync);
  129.  
  130. EXTERN_API( void )
  131. InitializeQHdr                    (QHdr *                    qhdr);
  132.  
  133. EXTERN_API( void )
  134. TerminateQHdr                    (QHdr *                    qhdr);
  135.  
  136. EXTERN_API( void )
  137. QTMLAcquireWindowList            (void);
  138.  
  139. EXTERN_API( void )
  140. QTMLReleaseWindowList            (void);
  141.  
  142. /*
  143.    These routines are here to support "interrupt level" code
  144.       These are dangerous routines, only use if you know what you are doing.
  145. */
  146.  
  147. EXTERN_API( long )
  148. QTMLRegisterInterruptSafeThread    (unsigned long             threadID,
  149.                                  void *                    threadInfo);
  150.  
  151. EXTERN_API( long )
  152. QTMLUnregisterInterruptSafeThread (unsigned long         threadID);
  153.  
  154. EXTERN_API( long )
  155. NativeEventToMacEvent            (void *                    nativeEvent,
  156.                                  EventRecord *            macEvent);
  157.  
  158. #if TARGET_OS_WIN32
  159. EXTERN_API( long )
  160. WinEventToMacEvent                (void *                    winMsg,
  161.                                  EventRecord *            macEvent);
  162.  
  163. #define WinEventToMacEvent    NativeEventToMacEvent
  164. EXTERN_API( Boolean )
  165. IsTaskBarVisible                (void);
  166.  
  167. EXTERN_API( void )
  168. ShowHideTaskBar                    (Boolean                 showIt);
  169.  
  170. enum {
  171.     kDDSurfaceLocked            = (1L << 0),
  172.     kDDSurfaceStatic            = (1L << 1)
  173. };
  174.  
  175. EXTERN_API( OSErr )
  176. QTGetDDObject                    (void **                lpDDObject);
  177.  
  178. EXTERN_API( OSErr )
  179. QTSetDDObject                    (void *                    lpNewDDObject);
  180.  
  181. EXTERN_API( OSErr )
  182. QTSetDDPrimarySurface            (void *                    lpNewDDSurface,
  183.                                  unsigned long             flags);
  184.  
  185. EXTERN_API( OSErr )
  186. QTMLGetVolumeRootPath            (char *                    fullPath,
  187.                                  char *                    volumeRootPath,
  188.                                  unsigned long             volumeRootLen);
  189.  
  190. EXTERN_API( void )
  191. QTMLSetWindowWndProc            (WindowPtr                 theWindow,
  192.                                  void *                    windowProc);
  193.  
  194. EXTERN_API( void *)
  195. QTMLGetWindowWndProc            (WindowPtr                 theWindow);
  196.  
  197. #endif  /* TARGET_OS_WIN32 */
  198.  
  199. EXTERN_API( OSErr )
  200. QTMLGetCanonicalPathName        (char *                    inName,
  201.                                  char *                    outName,
  202.                                  unsigned long             outLen);
  203.  
  204. enum {
  205.     kFullNativePath                = 0,
  206.     kFileNameOnly                = (1 << 0),
  207.     kDirectoryPathOnly            = (1 << 1),
  208.     kUFSFullPathName            = (1 << 2),
  209.     kTryVDIMask                    = (1 << 3),                        /*    Used in NativePathNameToFSSpec to specify to search VDI mountpoints*/
  210.     kFullPathSpecifiedMask        = (1 << 4)                        /*    the passed in name is a fully qualified full path*/
  211. };
  212.  
  213. EXTERN_API( OSErr )
  214. FSSpecToNativePathName            (const FSSpec *            inFile,
  215.                                  char *                    outName,
  216.                                  unsigned long             outLen,
  217.                                  long                     flags);
  218.  
  219. enum {
  220.     kErrorIfFileNotFound        = 1L << 31
  221. };
  222.  
  223. EXTERN_API( OSErr )
  224. NativePathNameToFSSpec            (char *                    inName,
  225.                                  FSSpec *                outFile,
  226.                                  long                     flags);
  227.  
  228. #endif  /* !(TARGET_OS_MAC && TARGET_API_MAC_OS8) */
  229.  
  230.  
  231. #if PRAGMA_STRUCT_ALIGN
  232.     #pragma options align=reset
  233. #elif PRAGMA_STRUCT_PACKPUSH
  234.     #pragma pack(pop)
  235. #elif PRAGMA_STRUCT_PACK
  236.     #pragma pack()
  237. #endif
  238.  
  239. #ifdef PRAGMA_IMPORT_OFF
  240. #pragma import off
  241. #elif PRAGMA_IMPORT
  242. #pragma import reset
  243. #endif
  244.  
  245. #ifdef __cplusplus
  246. }
  247. #endif
  248.  
  249. #endif /* __QTML__ */
  250.  
  251.